Why Undergraduates Should Learn the Principles of Programming Languages∗ ACM SIGPLAN Education Board

نویسندگان

  • Stephen N. Freund
  • Dan Grossman
  • Gary T. Leavens
چکیده

Undergraduate students obtain important knowledge and skills by studying the pragmatics of programming in multiple languages and the principles underlying programming language design and implementation. These topics strengthen students’ grasp of the power of computation, help students choose the most appropriate programming model and language for a given problem, and improve their design skills. Understanding programming languages thus helps students in ways vital to many career paths and interests. This white paper is based on contributed articles, discussions, and presentations from the 2008 SIGPLAN Programming Language Curriculum Workshop [3, 4]. Programming languages are the medium through which we describe computations. More specifically, we use the model provided by a programming language to discuss concepts, formulate algorithms, and reason about problem solutions. Programming languages define models tailored to thinking about and solving problems in intended application areas. For example, the C language provides a model close to a computer’s underlying hardware, a spreadsheet language (such as Excel with Visual Basic for Applications) provides a model of cells and constraints for solving financial problems, and so on. The languages used in practice change continuously, as advances in our field and the broadening uses of technology change how we model and express computation. The rise of the Internet and the web, for example, fundamentally transformed the way many types of systems are designed, implemented, and deployed. The rapid adoption of multicore and distributed platforms is again transforming how we program. ∗This material is based upon work supported by the National Science Foundation under Grant No. CCF0825525. Stephen Freund was also supported, in part, by Grant No. CCF-0644130. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Language-oriented Approach to Teaching Concurrency

This paper argues in favour of a language-oriented approach to teach the principles of concurrency to graduate students. Over the past years, the popularity of programming languages that promote a functional programming style has steadily grown. We want to promote the use of such languages as the appropriate basic tools to deal with the “multicore revolution”. We describe some of these programm...

متن کامل

Region-based Memory Management

This paper describes a memory management discipline for programs that perform dynamic memory allocation and de-allocation. At runtime, all values are put into regions. The store consists of a stack of regions. All points of region allocation and de-allocation are inferred automatically, using a type and effect based program analysis. The scheme does not assume the presence of a garbage collecto...

متن کامل

Defining and Implementing Commutativity Conditions for Parallel Execution

data type: an algebraic methodology for their specification. In MFDBS 89: Proceedings of the second symposium on Mathematical fundamentals of database systems, pages 53–67, New York, NY,USA, 1989. Springer-Verlag New York, Inc. [3] Brian D. Carlstrom, Austen McDonald, Hassan Chafi, JaeWoongChung, Chi Cao Minh, Christos Kozyrakis, and Kunle Olukotun. The atomos transactional programming ...

متن کامل

How enterprises use functional languages, and why they don’t

Logic programming and functional programming row in the same boat. Methods used to achieve success with one often transpose to the other, and both face similar obstacles. Here I offer a compendium of success stories for functional programs, followed by a list of obstacles to more widespread use of functional programming, in the belief that much of this experience is relevant to logic programmer...

متن کامل

Altenkirch, Thorsten and Kaposi, Ambrus (2016) Type theory in type theory using quotient inductive types. In: POPL '16 The 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 20-22 January 2016, St Petersburg, Florida, United States of America

We present an internal formalisation of a type heory with dependent types in Type Theory using a special case of higher inductive types from Homotopy Type Theory which we call quotient inductive types (QITs). Our formalisation of type theory avoids referring to preterms or a typability relation but defines directly well typed objects by an inductive definition. We use the elimination principle ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010